// 1、引入axios
import axios from "axios";

// 2、创建axios对象
const service = axios.create({
    baseURL: '/dev',
    headers: {
    'Content-Type': 'application/json;charset=utf-8'
  }
})

// 3、请求拦截器 ==> 前端给后端发送数据
service.interceptors.request.use(
    config => {
        console.log('请求拦截器 :', config)
        return config
    }, error => {
        Promise.reject(error)
    }
)

// 4、响应拦截器 ==> 后端给前端返回数据
service.interceptors.response.use(
    response => {
        return response
    },
    error => {
        console.log('响应拦截器错误:', error)
        return Promise.reject(new Error(error.response))
    }
)

/**
 * 封装 GET 请求
 * @param {String} url 请求地址
 * @param {Object} params 请求参数
 * @param {Object} config 额外配置
 */
export function get(url, params = {}, config = {}) {
  return service({
    method: 'get',
    url,
    params,
    ...config
  })
}

/**
 * 封装 POST 请求
 * @param {String} url 请求地址
 * @param {Object} data 请求数据
 * @param {Object} config 额外配置
 */
export function post(url, data = {}, config = {}) {
  return service({
    method: 'post',
    url,
    data,
    ...config
  })
}

export default service